package model.common.template;

/** As in Java does not exists multiple inheritance and in the model a ParameterableElement
 * is inherited by several classes and some of them inherited others, 
 * we simulated this with an interface. */
public interface ParameterableElement {

	// Attributes
	public TemplateParameter getOwningTemplateParameter();
	
	public TemplateParameter getParameteredElement();
	
	public void setOwningTemplateParameter(TemplateParameter owningTemplateParameter);
	
	public boolean isCompatibleWith(ParameterableElement p);
	
	public default boolean isTemplateParameter() {
		return getOwningTemplateParameter().notEmpty();
	}
	
}
